home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
A-Monthly Disks
/
(c)abi.d64
/
supermon+ inst
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
7KB
|
222 lines
10 REM SUPERMON+ INSTR
20 GOSUB 10000
30 PRINT "SUPERMON+ IS A NEW VERSION OF
40 [153]"'SUPERMON' THE REASON FOR THE NEW
50 PRINT"VERSION IS TO PROVIDE IDENTICAL
55 [153]"COMMANDS TO THOSE OF THE BUILT-IN
60 PRINT"MONITOR OF THE COMMODORE 128.
65 [153]" THE MOST VISIBLE CHANGES FROM
70 PRINT"EARLIER VERSIONS OF SUPERMON ARE:
75 [153]" --DECIMAL OR BINARY INPUT ALLOWED;
80 PRINT" --DISK STATUS AND COMMANDS (@);
85 [153]" --LOOSER (EASIER) SYNTAX.
100 GOSUB 9000
110 PRINT" NUMBER CONVERSION "
120 PRINT" $2000
130 [153]" $2000
140 PRINT" +8192
150 [153]" &20000
160 PRINT" %10000000000000
170 [153]
180 [153]" IN THE ABOVE EXAMPLE THE USER
190 PRINT"HAS ASKED FOR THE NUMERIC EQUIVALENTS
200 [153]"TO HEXADECIMAL 2000. THE REPLY SHOWS
210 PRINT"THE VALUE IN HEX ($), IN DECIMAL (+),
220 [153]"IN OCTAL (&), AND IN BINARY (%).
230 PRINT" THE USER COULD ASK FOR A NUMBER TO
240 [153]"BE CONVERTED FROM ANY OF THESE BASES
250 PRINT"BY GIVING THE APPROPRIATE PREFIX.
300 [141]9000
310 [153]" IMPORTANT NOTE -- "
320 [153]" AT ANY TIME IN THE FOLLOWING TEXT,
330 PRINT"YOU MAY ENTER ANY NUMBER IN ANY BASE
340 [153]"AND CONVERSION WILL BE DONE FOR YOU.
350 PRINT"EXAMPLE:
360 [153]" M +4096
370 PRINT" ... WILL CAUSE A MEMORY DISPLAY
380 [153]"FROM DECIMAL ADDRESS 4096. IN THE
390 PRINT"DISPLAY, THE HEX ADDRESS ($1000) WILL
400 [153]"BE SHOWN. SIMILARLY,
410 PRINT" A +2048 LDA[160]#%10000000
420 [153]" ... WILL BE CONVERTED TO ASSEMBLE:
430 PRINT" A $0400 LDA #$80
440 [153]" IF YOU DON'T GIVE A PREFIX, THE
450 PRINT"MONITOR WILL ASSUME HEXADECIMAL.
500 [141]9000
510 [153]" REGISTER DISPLAY "
520 [153]" R
530 PRINT" PC SR AC XR YR SP
540 [153]"; 0000 01 02 03 04 05
550 PRINT" DISPLAYS THE REGISTER VALUES SAVED
560 [153]"WHEN SUPERMON+WAIT WAS ENTERED. VALUES
570 PRINT"MAY BE CHANGED BY TYPING OVER THE
580 [153]"DISPLAY FOLLOWED BY A RETURN CHARACTER.
590 PRINT" PC - PROGRAM COUNTER
600 [153]" SR - STATUS REGISTER
610 PRINT" AC, XR, YR - A, X, AND Y REGISTERS
620 [153]" SP - STACK POINTER
700 GOSUB9000
720 PRINT" M[146] 200[146] 209
730 [153]">0200 4D 20 32 30 30 20 32 30:M 200 20"
740 [153]">0208 39 00 00 04 00 04 00 04:9......."
750 [153]" DISPLAY MEMORY FROM 0200 HEX TO
760 PRINT"0209 HEX. DISPLAY IS IN LINES OF 8
770 [153]"SO ADDRESSES $200 TO $20F ARE SHOWN.
780 PRINT" IF ONE ADDRESS ONLY IS GIVEN THEN
790 [153]"12 LINES (96 LOCATIONS) WILL BE:SHOWN.
800 PRINT"IF NO ADDRESS IS GIVEN DISPLAY WILL GO
810 [153]"FROM THE LAST ADDRESS.
820 PRINT" EQUIVALENT ASCII CHARACTERS ARE SHOWN
830 [153]"IN REVERSE AT THE RIGHT.
840 PRINT"VALUES ARE CHANGED BY TYPING OVER THE
850 [153]"DISPLAY FOLLOWED BY A RETURN CHARACTER.
900 GOSUB9000
910 PRINT" EXIT TO BASIC "
920 PRINT" X
930 [153]" RETURN TO BASIC READYWAIT MODE.
940 PRINT"WHEN YOU WISH TO RETURN TO SUPERMON+,
950 [153]"COMMAND SYS 8WAIT.
1000 GOSUB9000
1010 PRINT" SIMPLE ASSEMBLER "
1020 PRINT" A[146] 2000[146] LDA[146] #+18
1030 [153]" (CHANGES TO:)"
1040 [153]"A 2000 A9 12 LDA #$12
1050 PRINT"A 2002 ..NEXT INSTRUCTION
1060 [153]" IN THE ABOVE EXAMPLE THE USER
1070 PRINT"STARTED ASSEMBLY AT 2000 HEX. THE
1080 [153]"FIRST INSTRUCTION WAS LOAD A REGISTER
1090 PRINT"WITH IMMEDIATE 18 DECIMAL. IN FOLLOWING
1100 [153]"LINES THE USER NEED NOT TYPE THE
1110 PRINT"A AND ADDRESS. THE SIMPLE ASSEMBLER
1120 [153]"PROMPTS WITH THE NEXT ADDRESS. TO EXIT
1130 PRINT"THE ASSEMBLER TYPE A RETURN AFTER THE
1140 [153]"THE ADDRESS PROMPT.
1150 PRINT" PREVIOUS LINES MAY BE CHANGED BY
1160 [153]"TYPING OVER THE RIGHT HAND PART.
1200 GOSUB9000
1220 PRINT" D[146] 2000[146] 2004[146]
1230 [153]". 2000 A9 12 LDA #$12
1240 PRINT". 2002 9D 00 80 STA $8000,X
1250 [153]" DISASSEMBLES INSTRUCTIONS FROM
1260 PRINT"2000 TO 2004 HEX. IF ONE ADDRESS IS
1270 [153]"GIVEN, 20 BYTES WILL BE DISASSEMBLED.
1280 PRINT"IF NO ADDRESS, START FROM THE LAST
1290 [153]"USED ADDRESS.
1300 PRINT" CODE MAY BE REASSEMBLED BY MOVING
1310 [153]"THE CURSOR BACK AND TYPING OVER THE
1320 PRINT"RIGHT HAND PART.
1400 [141]9000
1410 [153]" FILL MEMORY "
1420 [153]" FWAIT 1000WAIT 1100WAIT FF
1430 PRINT" FILLS THE MEMORY FROM 1000 HEX TO
1440 [153]"1100 HEX WITH THE BYTE FF HEX.
1500 GOSUB9000
1510 PRINT" GO (RUN)"
1520 PRINT" G[146] 1000
1530 [153]" GO TO ADDRESS 1000 HEX AND BEGIN
1540 PRINT"RUNNING CODE.
1550 [153]" IF NO ADDRESS IS GIVEN, THE ADDRESS
1560 PRINT"FROM THE <PC> REGISTER IS USED.
1570 [153]" JUMP (SUBROUTINE)"
1580 [153]" JWAIT 1000
1590 PRINT" CALL ADDRESS 1000 HEX AND BEGIN
1600 [153]"RUNNING CODE. RETURN TO THE MONITOR.
1700 GOSUB9000
2200 PRINT" HUNT MEMORY "
2210 PRINT" H[146] C000[146] D000[146] 'READ
2220 [153]" HUNT THRU MEMORY FROM C000 HEX TO
2230 PRINT"D000 HEX FOR THE ASCII STRING READ[146] AND
2240 [153]"PRINT THE ADDRESS WHERE IT IS FOUND. A
2250 PRINT"MAXIMUM OF 32 CHARACTERS MAY BE USED.
2260 [153]" HWAIT C000WAIT D000WAIT 20WAIT D2WAIT FF
2270 PRINT" HUNT MEMORY FROM C000 HEX TO D000
2280 [153]"HEX FOR THE SEQUENCE OF BYTES 20 D2 FF
2290 PRINT"AND PRINT THE ADDRESS. A MAXIMUM OF 32
2300 [153]"BYTES MAY BE USED.
2390 GOSUB9000
2400 PRINT" LOAD "
2401 PRINT" L[146]
2402 [153]" LOAD ANY PROGRAM FROM CASSETTE #1.
2403 PRINT" L[146] ";CHR$(34);"RAM TEST";CHR$(34)
2404 PRINT" LOAD FROM CASSETTE #1 THE PROGRAM
2405 [153]"NAMED RAM TESTWAIT.
2410 PRINT" L[146] ";CHR$(34);"RAM TEST";CHR$(34);",08[146]
2420 [153]" LOAD FROM DISK (DEVICE 8) THE PROGRAM
2430 PRINT"NAMED RAM TEST[146].
2440 [153]"THIS COMMAND LEAVES BASIC POINTERS
2450 PRINT"UNCHANGED.
2490 [141]9000
2700 [153]" SAVE"
2710 [153]" SWAIT ";[199](34);"PROGRAM NAME";[199](34);",01,0800,0C80"
2720 [153]" SAVE TO CASSETTE #1 MEMORY FROM
2730 PRINT"0800 HEX UP TO BUT NOT INCLUDING 0C80
2740 [153]"HEX AND NAME IT PROGRAM NAMEWAIT.
2750 PRINT" S[146] ";CHR$(34);"0:PROGRAM NAME";CHR$(34);",08,1200,1F50"
2760 PRINT" SAVE TO DISK DRIVE #0 MEMORY FROM
2770 [153]"1200 HEX UP TO BUT NOT INCLUDING 1F50
2780 PRINT"HEX AND NAME IT PROGRAM NAME[146].
2790 [141]9000
2800 [153]" TRANSFER MEMORY "
2810 [153]" TWAIT 1000WAIT 1100WAIT 5000
2820 PRINT" TRANSFER MEMORY IN THE RANGE 1000
2830 [153]"HEX TO 1100 HEX AND START STORING IT AT
2840 PRINT"ADDRESS 5000 HEX.
2890 [141]9000
2900 [153]" COMPARE MEMORY "
2910 [153]" CWAIT 1000WAIT 1100WAIT 5000
2920 PRINT" COMPARE MEMORY IN THE RANGE 1000
2930 [153]"HEX TO 1100 HEX WITH MEMORY STARTING
2940 PRINT"AT ADDRESS 5000 HEX.
2990 [141]9000
3000 [153]" CHECK DISK "
3010 [153]" @WAIT
3020 PRINT" GET DISK STATUS MESSAGE
3030 [153]" @9WAIT
3040 PRINT" GET DISK UNIT 9 STATUS MESSAGE
3050 [153]" @,$0WAIT
3060 PRINT" GET DRIVE 0 DIRECTORY
3070 [153]" @,S0:TEMPWAIT
3080 PRINT" SCRATCH FILE 'TEMP' FROM DISK
3090 [141]9000
3100 [153]" OUTPUT TO PRINTER"
3110 [153]"CALL SUPERMON+ FROM BASIC WITH:
3120 PRINT" OPEN 4,4:CMD 4:SYS 8[146]"
3130 PRINT"ALL COMMANDS WILL GO THE PRINTER.
3140 [153]" WHEN COMPLETE, RETURN TO BASIC
3150 PRINT"WITH X[146] AND COMMAND:
3160 [153]" PRINT#4:CLOSE 4WAIT"
3170 [141]9000
3500 [153]"ON SUMMARY "
3505 [153]"$WAIT,+WAIT,&WAIT,%WAIT NUMBER CONVERSION
3510 PRINT"G[146] GO (RUN)
3515 [153]"JWAIT JUMP (SUBROUTINE)
3520 PRINT"L[146] LOAD FROM TAPE OR DISK
3530 [153]"MWAIT MEMORY DISPLAY
3540 PRINT"R[146] REGISTER DISPLAY
3550 [153]"SWAIT SAVE TO TAPE OR DISK
3560 PRINT"X[146] EXIT TO BASIC
3600 [153]"AWAIT SIMPLE ASSEMBLER
3610 PRINT"D[146] DISASSEMBLER
3620 [153]"FWAIT FILL MEMORY
3630 PRINT"H[146] HUNT MEMORY
3660 [153]"TWAIT TRANSFER MEMORY
3665 PRINT"C[146] COMPARE MEMORY
3670 [153]"@WAIT DISK STATUS/COMMAND
4000 GOSUB9000
4010 PRINT"[145]SUPERMON[146] WILL LOAD ITSELF INTO THE
4020 [153]"TOP OF MEMORY .. WHEREVER THAT HAPPENS
4030 PRINT"TO BE ON YOUR MACHINE.
4060 [153]"BE SURE TO NOTE THE SYS COMMAND WHICH
4070 PRINT"LINKS SUPERMON[146] TO THE COMMODORE. IT
4080 [153]"MAY BE USED TO RECONNECT THE MONITOR
4090 PRINT"IF IT IS ACCIDENTALLY DISCONNECTED BY
4100 [153]"USE OF THE RUN-STOP/RESTORE KEYS."
5000 [141]9000
8000 [137] 30
9000 [153]" HIT ANY KEY TO CONTINUE WAIT";
9010 [129]I[178]1[164]10:[161]A$:[130]
9020 [161]A$:[139]A$[178]""[167]9020
10000 [153]"LOAD S U P E R M O N + WAIT"
10010 [153]"COMMANDS - USER INPUT IN REVERSE "
10040 [142]